import request from '@/config/axios'

// 表单任务 VO
export interface TaskVO {
  id: number // 主键id
  dtName: string // 任务名称
  dtType: string // 任务类型(1：单次任务，2：周期任务)
  dtRemark: string // 任务描述
  dtBeginDate: Date // 开始时间
  dtEndDate: Date // 结束时间
  dtFormId: number // 表单分组
  dtPeriodType: string // 周期（1：日报；2：月报；3：年报；4：自定义）
  dtPeriodNum: number // 自定义周期时长（天）
  dtReleaseTime: Date // 发布时间
  dtShareUrl: string // 分享链接地址
  dtReleaseStatus: number // 发布状态
}

// 表单任务 API
export const TaskApi = {
  // 查询表单任务分页
  getTaskPage: async (params: any) => {
    return await request.get({ url: `/system/task/page`, params })
  },

  // 查询表单任务详情
  getTask: async (id: number) => {
    return await request.get({ url: `/system/task/get?id=` + id })
  },

  // 新增表单任务
  createTask: async (data: TaskVO) => {
    return await request.post({ url: `/system/task/create`, data })
  },

  // 修改表单任务
  updateTask: async (data: TaskVO) => {
    return await request.put({ url: `/system/task/update`, data })
  },

  // 删除表单任务
  deleteTask: async (id: number) => {
    return await request.delete({ url: `/system/task/delete?id=` + id })
  },

  // 导出表单任务 Excel
  exportTask: async (params) => {
    return await request.download({ url: `/system/task/export-excel`, params })
  },

  // 发布表单管理
  releaseTask: async (id: number) => {
    return await request.delete({ url: `/system/task/release?id=` + id })
  },

  // 撤回表单管理
  revokeTask: async (id: number) => {
    return await request.delete({ url: `/system/task/revoke?id=` + id })
  },

  // 获取表单精简信息列表
  getSimpleTaskList: async (): Promise<TaskVO[]> => {
    return request.get({ url: '/system/task/simple-list' })
  }
}
